//
//  HMUserAccountTools.swift
//  weibo28
//
//  Created by 范英强 on 16/3/25.
//  Copyright © 2016年 范英强. All rights reserved.
//

import UIKit

class HMUserAccountTools: NSObject {
    // 全局访问点
    static let sharedTools:HMUserAccountTools = HMUserAccountTools()
    // 文件路径
    let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    // 如果我们登陆了  我们肯定会有 token
    // 为什么用只读的 
    var accessToken: String?{
        // 2. 没有过期
        let userAccount = getUserAccount()
        // 如果我从本地取我们的对象存在 就代表我们已经登陆过
        // 如果我们取不到的  那么我们就返回 nil
        if userAccount != nil{
            // 如果我已经保存了 那么accessToken 肯定有数据 
            // 如果 expiresDate 大于我们当前时间 就说明我们的token没有过期  
            // 如果小于的话 就是过期了
            
            if userAccount?.expiresDate?.compare(NSDate()) == NSComparisonResult.OrderedDescending{
                return userAccount?.access_token
            }else{
                return nil
            }
        }else{
            return nil
        }
    }
    
    // 如果判断用户是否登陆  如果accessToken有值的话就代表登陆了 反之代表没有登陆
    // 判断用户是否登陆
    var isLogin: Bool{
        if accessToken != nil{
            return true
        }else{
            return false
        }
        
    }
    
    // 用单例来调取 不能使用init
    private override init() {
        super.init()
    }
    // 通过归档保存用户数据
    func saveUserAccount(account: HMUserAccount){

        // 归档对象
        NSKeyedArchiver.archiveRootObject(account, toFile: path)
    }
    
    // 解档
    func getUserAccount() ->HMUserAccount?{
        // 获取数据
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as?HMUserAccount
        return result
    }

}
